<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui" template="template.xhtml">
	<ui:define name="container">
		<h:form prependId="false" id="form">			
			<p:panel header="Eventos">
				<h:panelGrid columns="4">
					<h:panelGrid columns="1">
						<h:panelGrid>
							<h:outputText value="Listar eventos por:" />
							<p:selectOneRadio value="#{eventoMB.dataFiltro}"
								layout="pageDirection">
								<f:selectItem itemLabel="Data de criação" itemValue="0" />
								<f:selectItem itemLabel="Data de expiração" itemValue="1" />
							</p:selectOneRadio>
						</h:panelGrid>
					</h:panelGrid>
					<h:panelGrid>
						<h:outputText value="Data inicial:" />
						<p:calendar locale="pt_BR" value="#{eventoMB.dataInicial}"
							pattern="dd/MM/yyyy" effect="drop" />
						<h:outputText value="Data Final:" />
						<p:calendar locale="pt_BR" value="#{eventoMB.dataFinal}"
							pattern="dd/MM/yyyy" effect="drop" />
					</h:panelGrid>
					<h:panelGrid id="filtroGruposUsuarios">
						<h:outputLabel value="Recebidos Por:" />
						<p:selectOneMenu style="width: 320px"
							disabled="#{eventoMB.atendente}"
							value="#{eventoMB.grupoSelecionado}">
							<f:selectItems value="#{eventoMB.comboGrupos}" />
							<p:ajax update="filtroGruposUsuarios" />
						</p:selectOneMenu>
						<h:outputLabel value="Entidades do Grupo:" />
						<p:selectOneMenu id="cmbUsuariosGrupo" style="width: 320px"
							value="#{eventoMB.usuarioSelecionado}"
							disabled="#{eventoMB.atendente}">
							<f:selectItems value="#{eventoMB.comboUsuariosDoGrupo}" />
						</p:selectOneMenu>
					</h:panelGrid>
					<h:panelGrid>
						<p:commandButton value="Atualizar lista" update="lstEventos"
							image="cmdConsultar" actionListener="#{eventoMB.consultar}" />

						<p:commandButton value="Criar Evento" image="new_task" actionListener="#{eventoMB.novo}"
							oncomplete="criaEvento.show()" />
					</h:panelGrid>
				</h:panelGrid>
				<p:selectBooleanCheckbox value="#{eventoMB.listarNaoFinalizados}" />
				<h:outputLabel styleClass="labelNegrito"
					value="Listar apenas eventos não finalizados." />

				<p:dataTable id="lstEventos" var="evento"
					value="#{eventoMB.listaEventos}" 
					selection="#{eventoMB.eventoSelecionado}" dblClickSelect="true"					
					emptyMessage="Não existe eventos nesse período/Filtro"
					 selectionMode="single">

					<p:ajax event="rowSelect" listener="#{eventoMB.onRowSelect}"
						oncomplete="confirmation.show()" update="infoEvento" />

					<p:column headerText="Código" rendered="false">
						<h:outputText value="#{evento.idEvento}" />
					</p:column>
					<p:column headerText="Dt. Criação" sortBy="#{evento.dataOrigem}">
						<h:outputText value="#{evento.dataOrigem}">
							<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
						</h:outputText>
					</p:column>
					<p:column headerText="Cliente" sortBy="#{evento.cliente}"
						>
						<h:outputText value="#{evento.cliente}" />
					</p:column>
					<p:column headerText="Motivo" sortBy="#{evento.nomeMotivo}"
						>
						<h:outputText value="#{evento.nomeMotivo}" />
					</p:column>
					<p:column headerText="Status" sortBy="#{evento.nomeStatus}"
						 >
						<h:outputText value="#{evento.nomeStatus}" />
					</p:column>
					<p:column headerText="P." style="width: 10px;">
						<h:outputText value="#{evento.descPrioridade}" />
					</p:column>
					<p:column headerText="Dt. prevista" sortBy="#{evento.dataPrevista}"	>
						<h:outputText value="#{evento.dataPrevista}">
							<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
						</h:outputText>
					</p:column>
					<p:column headerText="Destino"  >
						<h:outputText value="#{evento.nomeDestino}" />
					</p:column>
					<p:column headerText="Criador" >
						<h:outputText value="#{evento.nomeCriador}" />
					</p:column>
				</p:dataTable>
			</p:panel>
		</h:form>
	</ui:define>
	<ui:define name="dialog">

		<ui:include src="includeCriaEvento.xhtml">
		</ui:include>

		<h:form prependId="false">
			<p:dialog id="detalhesEvento"
				header="Detalhes do evento #{eventoMB.eventoSelecionado.idEvento}"
				widgetVar="detalhesEvento" showEffect="clip" hideEffect="clip"
				width="600" height="460" position="center">

				<p:tabView id="infoEvento">
					<p:tab title="Informações do evento">
						<p:panel>
							<h:panelGrid id="infos" columns="2" columnClasses="label, value">
								<h:outputLabel value="Código do evento" />
								<h:outputText value="#{eventoMB.evento.idEvento}" />
								<h:outputLabel value="Status" />
								<h:outputText value="#{eventoMB.eventoSelecionado.nomeStatus}" />
								<h:outputLabel value="Motivo" />
								<h:outputText value="#{eventoMB.eventoSelecionado.nomeMotivo}" />
								<h:outputLabel value="Criado em" />
								<h:outputText value="#{eventoMB.evento.dataOrigem}">
									<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
								</h:outputText>
								<h:outputLabel value="Agendado para" />
								<h:outputText value="#{eventoMB.evento.dataExibir}">
									<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
								</h:outputText>
								<h:outputLabel value="Resolver Até" />
								<h:outputText value="#{eventoMB.evento.dataPrevista}">
									<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
								</h:outputText>
								<h:outputLabel value="Registrado por" />
								<h:outputText
									value="#{eventoMB.eventoSelecionado.nomeCriador}" />
								<h:outputLabel value="Destinatário" />
								<h:outputText value="#{eventoMB.eventoSelecionado.nomeDestino}" />
								<h:outputLabel value="Cliente" />
								<h:outputText value="#{eventoMB.eventoSelecionado.cliente}" />
								<h:outputLabel value="Aberto / Resolvido por" />
								<h:outputText
									value="#{eventoMB.eventoSelecionado.nomeResolveu}" />
								<h:outputLabel value="Aberto em" />
								<h:outputText value="#{eventoMB.evento.dataVisualizou}">
									<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
								</h:outputText>
								<h:outputLabel value="Resolvido em" />
								<h:outputText value="#{eventoMB.evento.dataResolvida}">
									<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
								</h:outputText>
							</h:panelGrid>
							<h:panelGrid>
								<h:outputLabel value="Observações do evento:" />
								<h:inputTextarea disabled="true" style="width: 400px"
									value="#{eventoMB.eventoSelecionado.observacaoOrigem}" />
							</h:panelGrid>
						</p:panel>
						<p:outputPanel id="conclusao">
							<h:panelGrid rendered="#{eventoMB.viewConclusao}">
								<p:panel>
									<h:outputLabel value="Texto de conclusão do evento:" />
									<h:inputTextarea style="width: 400px"
										disabled="#{eventoMB.eventoFinalizado}"
										value="#{eventoMB.eventoSelecionado.observacaoRetorno}" />		
								</p:panel>
							</h:panelGrid>

						</p:outputPanel>
						<h:panelGrid id="encaminhar">
							<p:outputPanel rendered="#{eventoMB.viewEncaminhar}"
								style="width: 100%">
								<p:panel style="width: 100%">
									<h:panelGrid columns="2">
										<h:panelGrid>
											<h:outputLabel value="Para:" />
											<p:selectOneMenu disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.tipoDestino}">
												<f:selectItems value="#{eventoMB.comboTipoDestino}" />
												<p:ajax update="destinosEncaminhar"
													listener="#{eventoMB.destinoChange}" />
											</p:selectOneMenu>
										</h:panelGrid>
										<h:panelGrid id="destinosEncaminhar">
											<h:outputLabel value="Destino para execução:" />
											<p:selectOneMenu rendered="#{eventoMB.cmbUsarioVisible}"
												disabled="#{eventoMB.eventoFinalizado}" style="width: 320px"
												value="#{eventoMB.eventoEncaminhar.idDestino}">
												<f:selectItems value="#{eventoMB.comboUsuarios}" />
											</p:selectOneMenu>
											<p:selectOneMenu rendered="#{!eventoMB.cmbUsarioVisible}"
												disabled="#{eventoMB.eventoFinalizado}" style="width: 320px"
												value="#{eventoMB.eventoEncaminhar.idDestino}">
												<f:selectItems value="#{eventoMB.comboGrupos}" />
											</p:selectOneMenu>
										</h:panelGrid>
									</h:panelGrid>
									<h:panelGrid columns="2">
										<h:panelGrid id="CanalMotivoEncaminhar">
											<h:outputLabel value="Motivo:" />
											<p:selectOneMenu style="width: 400px"
												disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.motivo.idMotivo}">
												<f:selectItems value="#{eventoMB.comboMotivos}" />
											</p:selectOneMenu>
										</h:panelGrid>
									</h:panelGrid>
									<h:panelGrid columns="3">
										<h:panelGrid>
											<h:outputLabel value="Agendar para:" />
											<p:calendar locale="pt_BR" pattern="MM/dd/yyyy HH:mm"
												navigator="true" display="inline"
												disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.dataExibir}"
												effect="drop" />
										</h:panelGrid>
										<h:panelGrid>
											<h:outputLabel value="Prioridade:" />
											<p:selectOneMenu disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.prioridade}">
												<f:selectItems value="#{eventoMB.comboPrioridade}" />
											</p:selectOneMenu>
										</h:panelGrid>
										<h:panelGrid columns="2">
											<p:selectBooleanCheckbox
												disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.avisoLeitura}" />
											<h:outputLabel value="Receber aviso de leitura" />
											<p:selectBooleanCheckbox
												disabled="#{eventoMB.eventoFinalizado}"
												value="#{eventoMB.eventoEncaminhar.avisoConclusao}" />
											<h:outputLabel value="Receber aviso de conclusão" />
										</h:panelGrid>
									</h:panelGrid>
									<h:panelGrid>
										<h:outputLabel value="Cliente:" />
										<h:panelGrid columns="2">
											<h:inputText style="width: 367px" disabled="true"
												value="#{eventoMB.eventoEncaminhar.entidade.nomeEntidade}" />
											<p:commandButton image="find" immediate="true"
												disabled="true" />
										</h:panelGrid>
										<h:outputLabel value="Observações:" />
										<h:inputTextarea style="width: 402px; height: 100px; "
											disabled="#{eventoMB.eventoFinalizado}"
											value="#{eventoMB.eventoEncaminhar.observacaoOrigem}" />
									</h:panelGrid>
								</p:panel>
							</p:outputPanel>
						</h:panelGrid>

						<h:panelGrid id="acao" cellspacing="4" columns="5">
							<p:commandButton value="Concluir"
								disabled="#{eventoMB.cmdConcluirEnable}"
								actionListener="#{eventoMB.concluir}"
								update="acao,conclusao,encaminhar" />
							<p:commandButton value="Encaminhar"
								disabled="#{eventoMB.cmdEncaminharEnable}"
								actionListener="#{eventoMB.encaminhar}"
								update="acao,conclusao,encaminhar" />
							<p:commandButton value="Gravar"
								disabled="#{eventoMB.cmdGravarEnable}"
								action="#{eventoMB.gravar}"
								update="infos,acao,conclusao,encaminhar,lstEventos,msgs" />
							<p:commandButton value="Cancelar"
								disabled="#{eventoMB.cmdCancelarEnable}"
								actionListener="#{eventoMB.estadoInicial}"
								update="acao,conclusao,encaminhar" />
							<p:commandButton value="Fechar"
								actionListener="#{eventoMB.estadoInicial}"
								onclick="detalhesEvento.hide()" />
						</h:panelGrid>
					</p:tab>
					<p:tab title="Históricos de eventos">
						<p:tree value="#{eventoMB.arvoreProcessos}" var="node"
							dynamic="true" style="width: 100%;" expandAnim="FADE_IN"
							collapseAnim="FADE_OUT" selectionMode="single"
							selection="#{eventoMB.selectedNode}">
							<p:treeNode>
								<h:outputText value="#{node}" styleClass="eventoStyle" />
							</p:treeNode>
						</p:tree>
					</p:tab>

				</p:tabView>
			</p:dialog>
			<p:confirmDialog
				message="A abertura deste evento trasmitirá a responsabilidade de resolvê-lo a você. Deseja continuar?"
				showEffect="clip" hideEffect="clip" severity="alert"
				widgetVar="confirmation">

				<p:commandButton value="Sim" oncomplete="confirmation.hide()"
					onsuccess="detalhesEvento.show()" update="infoEvento, lstEventos"
					actionListener="#{eventoMB.atualizaStatus}" />
				<p:commandButton value="Não" onclick="confirmation.hide()"
					type="button" oncomplete="return false;" />

			</p:confirmDialog>
		</h:form>
	</ui:define>
</ui:composition>